Add the rest of the pieces for PocketFMS.
authorrobertl <robertl>
Tue, 10 Mar 2009 13:44:14 +0000 (13:44 +0000)
committerrobertl <robertl>
Tue, 10 Mar 2009 13:44:14 +0000 (13:44 +0000)
Makefile.in
pocketfms_bc.c
pocketfms_bc.o
pocketfms_fp.c
pocketfms_fp.o
reference/pocketfms_bc.gpx
reference/pocketfms_fp.gpx
testo
vecs.c

index 5c24513278192daffab09476533e734f1f5ecc2c..18b858972a1492955d702d13776cfedc56bc82d1 100644 (file)
@@ -61,7 +61,7 @@ ALL_FMTS=$(MINIMAL_FMTS) gtm.o gpsutil.o pcx.o cetus.o copilot.o \
        ggv_log.o g7towin.o garmin_gpi.o lmx.o random.o xol.o dg-100.o \
        navilink.o mtk_logger.o ik3d.o osm.o destinator.o exif.o vidaone.o \
        igo8.o gopal.o humminbird.o mapasia.o gnav_trl.o navitel.o ggv_ovl.o \
-       jtr.o sbp.o sbn.o mmo.o skyforce.o itracku.o
+       jtr.o sbp.o sbn.o mmo.o skyforce.o itracku.o pocketfms_bc.o pocketfms_fp.o
 
 FMTS=@FMTS@
 
@@ -760,6 +760,8 @@ shape.o: shape.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   shapelib/shapefil.h
 skyforce.o: skyforce.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h session.h strptime.h
+pocketfms_bc.o: pocketfms_bc.c defs.h gbtypes.h 
+pocketfms_fp.o: pocketfms_fp.c defs.h gbtypes.h 
 smplrout.o: smplrout.c defs.h config.h queue.h gbtypes.h zlib/zlib.h \
   zlib/zconf.h gbfile.h cet.h cet_util.h inifile.h session.h filterdefs.h \
   grtcirc.h
index e5457096fff2eaa063da3e6595a9a571e72e6a69..2562e2744ed966739d21bf8c6697739cfbd9f851 100755 (executable)
@@ -134,30 +134,35 @@ pocketfms_waypt_disp(const waypoint *wpt)
        tm = localtime(&wpt->creation_time);
        if (wpt->creation_time) {
                tm = gmtime(&wpt->creation_time);
-               //tm = localtime(&wpt->creation_time);
        }
 
        strcpy (bc.id, header_id);
-       bc.version = 1;
-       bc.latitude = wpt->latitude;
-       bc.longitude = wpt->longitude;
-       bc.altitude = METERS_TO_FEET(wpt->altitude);
-       bc.year = tm->tm_year + 1900;
-       bc.month = tm->tm_mon + 1;
-       bc.day = tm->tm_mday;
-       bc.hour = tm->tm_hour;
-       bc.minute = tm->tm_min;
-       bc.second = tm->tm_sec;
-       bc.ehpe = wpt->hdop;
-       bc.evpe = wpt->vdop;
-       bc.espe = wpt->pdop;
-       bc.course = wpt->course;
-       bc.speed = wpt->speed;
-       bc.fix = wpt->fix+1;
+       le_write16(&bc.version, 1);
+       le_write_float(&bc.latitude, wpt->latitude);
+       le_write_float(&bc.longitude, wpt->longitude);
+       le_write_float(&bc.altitude, METERS_TO_FEET(wpt->altitude));
+       le_write16(&bc.year, tm->tm_year + 1900);
+       le_write16(&bc.month, tm->tm_mon + 1);
+       le_write16(&bc.day, tm->tm_mday);
+       le_write16(&bc.hour, tm->tm_hour);
+       le_write16(&bc.minute, tm->tm_min);
+       le_write16(&bc.second, tm->tm_sec);
+       le_write_float(&bc.ehpe, wpt->hdop);
+       le_write_float(&bc.evpe, wpt->vdop);
+       le_write_float(&bc.espe, wpt->pdop);
+       le_write_float(&bc.course, wpt->course);
+       le_write_float(&bc.speed, wpt->speed);
+       le_write16(&bc.fix, wpt->fix+1);
 
        gbfwrite(&bc, sizeof (bc), 1, file_out);
 }
 
+static void
+data_read(void)
+{
+       read_tracks();
+}
+
 static void
 data_write(void)
 {
@@ -175,7 +180,7 @@ ff_vecs_t pocketfms_bc_vecs = {
        wr_init,
        rd_deinit,
        wr_deinit,
-       NULL,
+       data_read,
        data_write,
        NULL,
        NULL,
index d1998ad922b5f89c779351192fd1528457b669c3..adcc2b071499924654f46adad47276c319489470 100644 (file)
Binary files a/pocketfms_bc.o and b/pocketfms_bc.o differ
index 7f573f3b77bdf137e4f5e74ff1b84f76934f3c04..029a7a2c4abf87d31e5f2547a34c2a65ad13a61e 100755 (executable)
@@ -23,7 +23,7 @@
 #include "xmlgeneric.h"
 
 static int isFirst = 1;
-static route_head *route;
+static route_head *route = NULL;
 static waypoint *wpt_to, *wpt_from;
 
 #define MYNAME "PocketFMS FlightPlan"
@@ -59,6 +59,16 @@ data_read(void)
 static void
 rd_deinit(void)
 {
+       if (route != NULL)
+       {
+               waypoint *head = (waypoint *) QUEUE_FIRST(&route->waypoint_list);
+               waypoint *tail = (waypoint *) QUEUE_LAST(&route->waypoint_list);
+               if (head != NULL)
+                       route->rte_name = xstrdup (head->shortname);
+               route->rte_name = xstrappend(route->rte_name, " - ");
+               if (tail != NULL)
+                       route->rte_name = xstrappend(route->rte_name, tail->shortname);
+       }
        xml_deinit();
 }
 
@@ -73,7 +83,7 @@ void  wpt_s(const char *args, const char **unused)
        if (isFirst == 1) {
                wpt_from = waypt_new();
                route = route_head_alloc();
-               route->rte_name=xstrdup("PocketFMS flightplan");
+               route->rte_desc=xstrdup("PocketFMS flightplan");
                route_add_head(route); 
        }
        wpt_to = waypt_new();
index a4e9448c2d8810c68373c4dda1a221dc588b353b..023ab634c26c8feac8ab067d3a42a37b69f238f0 100644 (file)
Binary files a/pocketfms_fp.o and b/pocketfms_fp.o differ
index 320ef9d18100538a0aa9bb03f34fda23b6cdcb2c..2f185a4d365409cf34736a67b505ab427ccc9769 100755 (executable)
@@ -5,11 +5,11 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.topografix.com/GPX/1/0"
   xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
-<time>2009-03-03T09:17:42Z</time>
+<time>1970-01-01T00:00:00Z</time>
 <bounds minlat="51.157424927" minlon="14.946011543" maxlat="51.170711517" maxlon="14.964761734"/>
 <trk>
-  <name>PocketFMS flight #1</name>
-  <desc>PocketFMS breadcrumb</desc>
+  <name>PocketFMS</name>
+  <desc>Breadcrumb</desc>
 <number>1</number>
 <trkseg>
 <trkpt lat="51.160198212" lon="14.946299553">
index 707553c427edbda1e0bee5cd4338d7e27d110b4f..e2e054295e448513a34824ff7bb70d81eced0306 100755 (executable)
@@ -5,7 +5,7 @@
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.topografix.com/GPX/1/0"
   xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
-<time>2009-03-03T10:09:38Z</time>
+<time>1970-01-01T00:00:00Z</time>
 <bounds minlat="51.158882000" minlon="14.902600000" maxlat="51.363167000" maxlon="14.952033000"/>
 <wpt lat="51.158882000" lon="14.950277000">
   <name>EDBX</name>
@@ -28,7 +28,8 @@
   <desc>EDBR</desc>
 </wpt>
 <rte>
-  <name>PocketFMS flightplan</name>
+  <name>EDBX - EDBR</name>
+  <desc>PocketFMS flightplan</desc>
   <rtept lat="51.158882000" lon="14.950277000">
     <name>EDBX</name>
   </rtept>
diff --git a/testo b/testo
index 80e966e16f7cc912f9d1711ae2f04dca0e6d27a9..7804e4774b2a93a0cc65e2df6e3583dcd1e6c777 100755 (executable)
--- a/testo
+++ b/testo
@@ -1571,5 +1571,19 @@ gpsbabel -i skyforce \
        -f ${REFERENCE}/track/skyforce_trk.txt -o gpx -F ${TMPDIR}/skyforce.gpx
 compare ${REFERENCE}/skyforce.gpx ${TMPDIR}/skyforce.gpx
 
+#
+# PocketFMS breadcrumb files
+#${TMPDIR}
+gpsbabel -i pocketfms_bc -f ${REFERENCE}/pocketfms_bc -o gpx -F ${TMPDIR}/pocketfms_bc.gpx
+compare ${REFERENCE}/pocketfms_bc.gpx ${TMPDIR}/pocketfms_bc.gpx
+gpsbabel -i gpx -f ${REFERENCE}/pocketfms_bc.gpx -o pocketfms_bc -F ${TMPDIR}/pocketfms_bc
+bincompare ${REFERENCE}/pocketfms_bc.babel ${TMPDIR}/pocketfms_bc
+
+#
+# PocketFMS flightplan files (.xml)
+#
+gpsbabel -i pocketfms_fp -f ${REFERENCE}/pocketfms_fp.xml -o gpx -F ${TMPDIR}/pocketfms_fp.gpx
+compare ${REFERENCE}/pocketfms_fp.gpx ${TMPDIR}/pocketfms_fp.gpx
+
 
 exit 0
diff --git a/vecs.c b/vecs.c
index 9da58ece741fbc0a24c23a8464879fe25659caf8..9c6c7d8adf6b079e900f90e2706d1e8f04a62789 100644 (file)
--- a/vecs.c
+++ b/vecs.c
@@ -156,6 +156,8 @@ extern ff_vecs_t sbp_vecs;
 extern ff_vecs_t sbn_vecs;
 extern ff_vecs_t mmo_vecs;
 extern ff_vecs_t skyforce_vecs;
+extern ff_vecs_t pocketfms_bc_vecs;
+extern ff_vecs_t pocketfms_fp_vecs;
 
 static
 vecs_t vec_list[] = {
@@ -898,6 +900,18 @@ vecs_t vec_list[] = {
                "Skymap / KMD150 ascii files",
                NULL
         },
+        {
+               &pocketfms_bc_vecs,
+               "pocketfms_bc",
+               "PocketFMS breadcrumbs",
+               NULL
+        },
+        {
+               &pocketfms_fp_vecs,
+               "pocketfms_fp",
+               "PocketFMS flightplan",
+               NULL
+        },
         
 
 #endif // MAXIMAL_ENABLED